#ifndef _GAME_STATE_H_
#define _GAME_STATE_H_

#include "IGameState.h"
#include "../Map/Map.h"
#include "../DungeonGenerator/IDungeonGenerator.h"
#include "../Map/MapActionManager.h"
#include "Character\CharaManager.h"

class GameState 
	: public IGameState
{
public:

	GameState(GameStateType::States type);
	virtual ~GameState(void);
	
public:

	void OnEnter( GameStateType::States previousState );
	void OnExit( GameStateType::States nextState );
	void Update( float delta );
	void Draw( float delta );

private:
	std::shared_ptr<Map> m_map;
	std::shared_ptr<IDungeonGenerator> m_generator;

	CharaManager		m_charaManager;
	MapActionManager	m_actionManager;
};

#endif // end of _TEST_GAME_STATE_H_